package com.sunyard.dal.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;

@Data
@ApiModel(value = "商户信息")
public class Shop implements Serializable {
    /**
     * 门店状态  1-门店启用  2-门店停用  3-门店注销
     */
    public static final String STATUS_OPEN = "1";
    public static final String STATUS_CLOSE = "2";
    public static final String STATUS_DELETE = "3";

    /**
     * 门店类型 1总店 2分店
     */
    public static final String TYPE_MAIN = "1";
    public static final String TYPE_BRANCH = "2";

    private static final long serialVersionUID = -1204010584527395539L;

    /**
     * 门店编号：商户编号+三位序列号
     */
    @ApiModelProperty(value = "门店编号")
    @NotNull(message = "门店编号不能为空")
    private String shopId;

    /**
     * 所属机构
     */
    @ApiModelProperty(value = "所属机构")
    @NotNull(message = "门店所属机构不能为空")
    private String orgId;

    @ApiModelProperty(value = "所属机构")
    private String orgName;


    /**
     * 所属商户证件号
     */
    @ApiModelProperty(value = "所属商户证件号")
    @NotBlank(message = "所属商户证件号不能为空")
    @Size(max = 60, message = "所属商户证件号最大位60位")
    private String mchntCertifNo;

    /**
     * 所属商户号
     */
    @ApiModelProperty(value = "所属商户号")
    private String mchntCd;

    /**
     * 门店法定名称
     */
    @ApiModelProperty(value = "门店法定名称")
    @Size(max = 40, message = "由1-40位中文，字母、数字组合")
    private String shopCnNm;

    /**
     * 门店经营名称（简称）
     */
    @ApiModelProperty(value = "门店经营名称")
    @Size(max = 40, message = "由1-40位中文，字母、数字组合")
    private String shopCnAbbr;

    /**
     * 门店经营证件类型
     */
    @ApiModelProperty(value = "门店经营证件类型")
    private String shopCertifType;

    @ApiModelProperty(value = "门店经营证件类型")
    private String shopCertifTypeName;

    /**
     * 门店证件号码
     */
    @ApiModelProperty(value = "门店证件号码")
    @NotBlank(message = "门店证明文件号不能为空")
    @Size(message = "门店证明文件号最大60位", max = 60)
    private String shopCertNo;

    /**
     * 负责人姓名
     */
    @ApiModelProperty(value = "负责人姓名")
    private String artifNm;

    /**
     * 负责人证件类型
     */
    @ApiModelProperty(value = "负责人证件类型")
    private String artifCertifType;

    @ApiModelProperty(value = "负责人证件类型")
    private String artifCertifTypeName;


    /**
     * 负责人证件号码
     */
    @ApiModelProperty(value = "负责人证件号码")
    private String artifCertifNo;

    /**
     * 省代码
     */
    @ApiModelProperty(value = "省代码")
    private String proCode;

    @ApiModelProperty(value = "省代码")
    private String proCodeName;

    /**
     * 市代码
     */
    @ApiModelProperty(value = "市代码")
    private String ctCode;

    @ApiModelProperty(value = "市代码")
    private String ctCodeName;

    /**
     * 区代码
     */
    @ApiModelProperty(value = "区代码")
    private String disCode;

    @ApiModelProperty(value = "区代码")
    private String disCodeName;

    /**
     * 门店经营地址
     */
    @ApiModelProperty(value = "门店经营地址")
    @NotBlank(message = "经营地址名称不能为空")
    @Size(max = 60, message = "经营地址最大60位")
    private String businessAddr;

    /**
     * 经度
     */
    @ApiModelProperty(value = "经度")
    private String longitude;

    /**
     * 纬度
     */
    @ApiModelProperty(value = "纬度")
    private String latitude;

    /**
     * 半径
     */
    @ApiModelProperty(value = "半径")
    private String radius;

    /**
     * 联系人类型
     * 本人/配偶/直系亲属/其他
     */
    @ApiModelProperty(value = "联系人类型")
    private String contactsType;

    @ApiModelProperty(value = "联系人类型")
    private String contactsTypeName;


    /**
     * 联系人电话
     */
    @ApiModelProperty(value = "联系人电话")
    private String contactsPhone;

    /**
     * 联系人姓名
     */
    @ApiModelProperty(value = "联系人姓名")
    private String contactsNm;

    /**
     * 是否独立清算 1-是，2-否
     */
    @ApiModelProperty(value = "是否独立清算 1-是，2-否")
    private String isSettle;

    /**
     * 结算账户开户行
     */
    @ApiModelProperty(value = "结算账户开户行")
    private String settleAccountName;

    /**
     * 结算帐号
     */
    @ApiModelProperty(value = "结算帐号")
    private String settleNo;

    /**
     * 结算帐号名
     */
    @ApiModelProperty(value = "结算帐号名")
    private String accountName;

    /**
     * 结算账户所属机构
     */
    @ApiModelProperty(value = "结算账户所属机构")
    private String shopBranchCode;

    /**
     * 结算账户所属机构名
     */
    @ApiModelProperty(value = "结算账户所属机构名")
    private String shopBranchName;

    /**
     * 是否T+0  0-否 1-是
     */
    @ApiModelProperty(value = "是否T+0  0-否 1-是")
    private String t0Flag;

    /**
     * 操作人
     */
    @ApiModelProperty(value = "操作人")
    private String opId;

    /**
     * 审核员
     */
    @ApiModelProperty(value = "审核员")
    private String auditer;

    /**
     * 门店营业执照照片
     */
    @ApiModelProperty(value = "门店营业执照照片")
    private String mchntCertifPic;

    /**
     * 法人身份证（正）
     */
    @ApiModelProperty(value = "法人身份证（正）")
    private String artifIdcardPicFront;

    /**
     * 法人身份证（反）
     */
    @ApiModelProperty(value = "法人身份证（反）")
    private String artifIdcardPicBack;

    /**
     * 实际经营人身份证（正）
     */
    @ApiModelProperty(value = "实际经营人身份证（正）")
    private String actualIdcardPicFront;

    /**
     * 实际经营人身份证（反）
     */
    @ApiModelProperty(value = "实际经营人身份证（反）")
    private String actualIdcardPicBack;

    /**
     * 业务协议
     */
    @ApiModelProperty(value = "业务协议")
    private String agreementPic;

    /**
     * 门店其他营业执照
     */
    @ApiModelProperty(value = "门店其他营业执照")
    private String otherCertifPic;

    /**
     * 门店门头照
     */
    @ApiModelProperty(value = "门店门头照")
    private String doorheadPic;

    /**
     * 业务人员与经营人在经营场所内的合影
     */
    @ApiModelProperty(value = "业务人员与经营人在经营场所内的合影")
    private String groupPic;

    /**
     * 其他交易影像照片
     */
    @ApiModelProperty(value = "其他交易影像照片")
    private String otherTradePic;

    /**
     * 门店状态 1-启用状态 2-停用状态 3-注销状态 4-锁定 5-黑名单
     */
    @ApiModelProperty(value = "门店状态")
    private String status;

    /**
     * 记录创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private String createDatetime;

    /**
     * 注册成功时间
     */
    private String registerDatetime;

    /**
     * 记录更新时间
     */
    private String updateDatetime;

    /**
     * 备用1
     */
    private String bak1;

    /**
     * 备用2
     */
    private String bak2;

    /**
     * 备用3
     */
    private String bak3;

    @ApiModelProperty("门店类型 1总店2分店")
    private String shopType;
    /**
     * 是否互金门店 0 否 1 是
     */
    private String hujinFlag;
    /**
     * 互金门店号
     */
    private String hujinShopId;
    /**
     * 迁移时间
     */
    private String moveDate;

    /**
     * 互金shopseq
     */
    private String hujinShopseq;
}